【WordPress】HyperDBプラグインとW3 Total Cacheの競合を解消する
WordPressのDBをレプリケーションしたい時に使うHyperDBプラグインとキャッシュ+CDNに使うW3 Total Cacheを合わせて使う場合にdb.phpというファイルが競合してしまいそのままでは使えません。Webを探しても情報がなかったのでさくっと解決方法を紹介したいと思います。
この記事を書いている時のプラグインバージョンはこの通りです。
- HyperDB(Ver: 1.1)
- W3 Total Cache(Ver: 0.9.2.11)
レプリケーションやプラグインの使い方については解説しません。
また、手順はsshでコマンドラインを使う前提としていますが、SFTPでも構いません。
なぜ競合するのか
低レベルな問題なのですが、wp-content/の中のdb.phpというファイル名が競合します。
解決方法
今回はW3 Total Cacheのdb.phpのファイル名を変更し、定数が書かれているファイルにあるdb.phpを書き換えます。
1,W3 Total Cacheのdb.phpをdb-cache.phpにリネーム
W3 Total Cacheを先にインストールし、W3 Total Cacheのdb.phpをdb-cache.phpにリネームしてください。その後、HyperDBをインストールするのがスムーズです。
$ cd wp-content/ $ mv db.php db-cache.php
2,W3 Total Cacheの定数を書き換える
W3 Total Cacheプラグインファイルのwp-content/plugins/w3-total-cache/inc/define.phpの63,67行目を以下のように変更します。
$ cd wp-content/plugins/w3-total-cache/inc/ $ vi define.php
63行目
//変更前: define('W3TC_INSTALL_FILE_DB', W3TC_INSTALL_DIR . '/db.php'); //変更後: define('W3TC_INSTALL_FILE_DB', W3TC_INSTALL_DIR . '/db-cache.php');
67行目
//変更前: define('W3TC_ADDIN_FILE_DB', WP_CONTENT_DIR . '/db.php'); //変更後: define('W3TC_ADDIN_FILE_DB', WP_CONTENT_DIR . '/db-cache.php');
変更できたら保存しましょう。
デメリット
結構めんどうなデメリットですが、W3 Total Cacheのアップデート毎にファイル名の変更処理が必要になります。
アップデートを行う際は注意しましょう。
最後に
すべての機能の動作確認ができているわけではないですが、これで動くようになると思います。